/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 
 * 
 *
 * 
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;

using JDCloudSDK.Charge.Model;

namespace JDCloudSDK.Mongodb.Model
{

    /// <summary>
    ///  dBInstance
    /// </summary>
    public class DBInstance
    {

        ///<summary>
        /// 实例ID
        ///</summary>
        public string InstanceId{ get; set; }
        ///<summary>
        /// 实例名称
        ///</summary>
        public string InstanceName{ get; set; }
        ///<summary>
        /// 实例类型，副本集：Replication；分片集群：Sharding；
        ///</summary>
        public string InstanceType{ get; set; }
        ///<summary>
        /// 数据库类型
        ///</summary>
        public string Engine{ get; set; }
        ///<summary>
        /// 数据库版本
        ///</summary>
        public string EngineVersion{ get; set; }
        ///<summary>
        /// 存储类型。LOCAL_SSD -本地盘SSD、LOCAL_NVMe -本地盘NVMe、EBS_SSD-SSD云盘。
        ///</summary>
        public string InstanceStorageType{ get; set; }
        ///<summary>
        /// 实例数据加密（存储类型为云硬盘才支持数据加密）。 false：不加密；true：加密。缺省为false。
        ///</summary>
        public bool StorageEncrypted{ get; set; }
        ///<summary>
        /// 副本集实例规格代码
        ///</summary>
        public string InstanceClass{ get; set; }
        ///<summary>
        /// 副本集存储空间
        ///</summary>
        public int? InstanceStorageGB{ get; set; }
        ///<summary>
        /// 副本集CPU核数
        ///</summary>
        public int? InstanceCPU{ get; set; }
        ///<summary>
        /// 副本集内存，单位GB
        ///</summary>
        public int? InstanceMemoryGB{ get; set; }
        ///<summary>
        /// 副本集可用区区ID，依次为主、从、隐藏节点所在可用区
        ///</summary>
        public List<string> AzId{ get; set; }
        ///<summary>
        /// VPCID
        ///</summary>
        public string VpcId{ get; set; }
        ///<summary>
        /// 子网ID
        ///</summary>
        public string SubnetId{ get; set; }
        ///<summary>
        /// 副本集名称
        ///</summary>
        public string ReplicaSetName{ get; set; }
        ///<summary>
        /// 副本集域名
        ///</summary>
        public string InstanceDomain{ get; set; }
        ///<summary>
        /// 默认库名
        ///</summary>
        public string DBName{ get; set; }
        ///<summary>
        /// 默认用户名
        ///</summary>
        public string AccountName{ get; set; }
        ///<summary>
        /// 副本集访问端口
        ///</summary>
        public string InstancePort{ get; set; }
        ///<summary>
        /// 实例状态.RUNNING：运行, ERROR：错误 ,BUILDING：创建中, DELETING：删除中, RESTORING：恢复中, RESIZING：变配中
        ///</summary>
        public string InstanceStatus{ get; set; }
        ///<summary>
        /// 自动备份保留时间
        ///</summary>
        public int? BackupRetentionPeriod{ get; set; }
        ///<summary>
        /// 创建时间
        ///</summary>
        public string CreateTime{ get; set; }
        ///<summary>
        /// 自动备份时间，如：00:00-02:00，表示0点到2点进行数据库自动备份
        ///</summary>
        public string PreferredBackupWindow{ get; set; }
        ///<summary>
        /// 系统维护时间，如：00:00-02:00，表示0点到2点进行系统维护
        ///</summary>
        public string PreferredmaintenanceWindow{ get; set; }
        ///<summary>
        /// 计费信息
        ///</summary>
        public JDCloudSDK.Charge.Model.Charge Charge{ get; set; }
        ///<summary>
        /// 是否设置白名单，true：已设置，false：未设置
        ///</summary>
        public bool IsSetSecurityIps{ get; set; }
        ///<summary>
        /// 标签
        ///</summary>
        public List<Tag> Tags{ get; set; }
        ///<summary>
        /// mongos信息
        ///</summary>
        public List<Mongos> Mongos{ get; set; }
        ///<summary>
        /// configserver信息
        ///</summary>
        public List<Configserver> Configserver{ get; set; }
        ///<summary>
        /// shard信息
        ///</summary>
        public List<Shard> Shard{ get; set; }
    }
}
